/** 
 * Date:2014年8月7日下午5:16:48 
 * Copyright (c) 2014, YIMAFU Co., Ltd. All right.
 * Author: hujl@weishequan.com
 */
package cn.com.qingz.modules.user.service;

import java.util.List;
import java.util.Map;

import com.github.miemiedev.mybatis.paginator.domain.PageList;

import cn.com.qingz.modules.user.model.User;
import cn.com.qingz.modules.user.vo.UserCondition;
import cn.com.qingz.modules.user.vo.UserPrivilegeVo;

/**
 * baby wang you are my apple.
 * i miss you so much
 * @author jiulong.hu
 */
public interface UserService {

    /**
     * 用户注册
     * @param user
     * @return
     */
    void doRegister(User user);

    /**
     * 用户登陆
     * @param user
     * @return
     */
    User login(User user);

    /**
     * 根据角色 查询用户权限
     * @param role 角色名称
     * @return
     */
    List<String> getPermissionByRole(String role);

    /**
     * 根据用户名 查询用户角色
     * @param logincode 用户登录代码
     * @return
     */
    List<String> getRoleByLoginCode(String logincode);

    /**
     * 修改用户基本信息
     * @param user
     */
    void doUpdateUserInfo(User user);

    /**
     * 修改用户密码
     * @param user 老密码
     * @param newPwd 新密码
     */
    void doUpdatePassword(User user, String newPwd);

    /**
     * 用户综合查询
     * @param condition
     * @param page
     * @param perPage
     * @return
     */
    public PageList<UserPrivilegeVo> queryUserPage(UserCondition condition, int page, int limit);

    /**
     * 设置用户角色
     * @param userid
     * @param roleids
     */
    public void doSetRole(Long userid, String roleids);

    /**
     * 启用/禁用
     * @param userid
     * @param status
     */
    public void doOnOff(Long userid, String status);

    /**
     * 禁用用户
     * @param userids
     */
    public void doDisableUsers(String userids);

    List<Map<String, Object>> test();
}
